home *** CD-ROM | disk | FTP | other *** search
- //-------------------------------------------------
- // TextBoxWithToolBar.cs ⌐ 2001 by Charles Petzold
- //-------------------------------------------------
- using System;
- using System.Drawing;
- using System.Windows.Forms;
-
- class TextBoxWithToolBar: Form
- {
- TextBox txtbox;
- MenuItem miEditCut, miEditCopy, miEditPaste;
- ToolBarButton tbbCut, tbbCopy, tbbPaste;
-
- public static void Main()
- {
- // El programa no se ejecuta sin esta sentencia.
-
- System.Threading.Thread.CurrentThread.ApartmentState =
- System.Threading.ApartmentState.STA;
-
- Application.Run(new TextBoxWithToolBar());
- }
- public TextBoxWithToolBar()
- {
- Text = "Cuadro de texto con una barra de herramientas";
-
- // Crea el cuadro de texto.
-
- txtbox = new TextBox();
- txtbox.Parent = this;
- txtbox.Dock = DockStyle.Fill;
- txtbox.Multiline = true;
- txtbox.ScrollBars = ScrollBars.Both;
- txtbox.AcceptsTab = true;
-
- // Crea la lista de imßgenes.
-
- Bitmap bm = new Bitmap(GetType(),
- "TextBoxWithToolBar.StandardButtons.bmp");
-
- ImageList imglst = new ImageList();
- imglst.Images.AddStrip(bm);
- imglst.TransparentColor = Color.Cyan;
-
- // Crea una barra de herramientas con un controlador del evento ButtonClick.
-
- ToolBar tbar = new ToolBar();
- tbar.Parent = this;
- tbar.ImageList = imglst;
- tbar.ShowToolTips = true;
- tbar.ButtonClick +=
- new ToolBarButtonClickEventHandler(ToolBarOnClick);
-
- // Crea el men· Edici≤n.
-
- Menu = new MainMenu();
-
- MenuItem mi = new MenuItem("&Edici≤n");
- mi.Popup += new EventHandler(MenuEditOnPopup);
- Menu.MenuItems.Add(mi);
-
- // Crea el elemento Cortar del men· Edici≤n.
-
- miEditCut = new MenuItem("Cor&tar");
- miEditCut.Click += new EventHandler(MenuEditCutOnClick);
- miEditCut.Shortcut = Shortcut.CtrlX;
- Menu.MenuItems[0].MenuItems.Add(miEditCut);
-
- // Y crea el bot≤n Cortar en la barra de herramientas.
-
- tbbCut = new ToolBarButton();
- tbbCut.ImageIndex = 4;
- tbbCut.ToolTipText = "Cortar";
- tbbCut.Tag = miEditCut;
- tbar.Buttons.Add(tbbCut);
-
- // Crea el elemento Copiar del men· Edici≤n.
-
- miEditCopy = new MenuItem("&Copiar");
- miEditCopy.Click += new EventHandler(MenuEditCopyOnClick);
- miEditCopy.Shortcut = Shortcut.CtrlC;
- Menu.MenuItems[0].MenuItems.Add(miEditCopy);
-
- // Y crea el bot≤n Copiar en la barra de herramientas.
-
- tbbCopy = new ToolBarButton();
- tbbCopy.ImageIndex = 5;
- tbbCopy.ToolTipText = "Copiar";
- tbbCopy.Tag = miEditCopy;
- tbar.Buttons.Add(tbbCopy);
-
- // Crea el elemento Pegar del men· Edici≤n.
-
- miEditPaste = new MenuItem("&Pegar");
- miEditPaste.Click += new EventHandler(MenuEditPasteOnClick);
- miEditPaste.Shortcut = Shortcut.CtrlV;
- Menu.MenuItems[0].MenuItems.Add(miEditPaste);
-
- // Y crea el bot≤n Pegar en la barra de herramientas.
-
- tbbPaste = new ToolBarButton();
- tbbPaste.ImageIndex = 6;
- tbbPaste.ToolTipText = "Pegar";
- tbbPaste.Tag = miEditPaste;
- tbar.Buttons.Add(tbbPaste);
-
- // Establece un temporizador para activar los botones.
-
- Timer timer = new Timer();
- timer.Interval = 250;
- timer.Tick += new EventHandler(TimerOnTick);
- timer.Start();
- }
- void MenuEditOnPopup(object obj, EventArgs ea)
- {
- miEditCut.Enabled =
- miEditCopy.Enabled = (txtbox.SelectionLength > 0);
- miEditPaste.Enabled =
- Clipboard.GetDataObject().GetDataPresent(typeof(string));
- }
- void TimerOnTick(object obj, EventArgs ea)
- {
- tbbCut.Enabled =
- tbbCopy.Enabled = (txtbox.SelectionLength) > 0;
- tbbPaste.Enabled =
- Clipboard.GetDataObject().GetDataPresent(typeof(string));
- }
- void ToolBarOnClick(object obj, ToolBarButtonClickEventArgs tbbcea)
- {
- ToolBarButton tbb = tbbcea.Button;
- MenuItem mi = (MenuItem) tbb.Tag;
-
- mi.PerformClick();
- }
- void MenuEditCutOnClick(object obj, EventArgs ea)
- {
- txtbox.Cut();
- }
- void MenuEditCopyOnClick(object obj, EventArgs ea)
- {
- txtbox.Copy();
- }
- void MenuEditPasteOnClick(object obj, EventArgs ea)
- {
- txtbox.Paste();
- }
- }
-